require规则

  1. /表示绝对路径 ./表示相对路径,相对于当前文件
  2. 支持js json node 拓展名,不写拓展名依次尝试
  3. 不写路径,require中直接写一个名字,他会在build-in。在nodejs中寻找自带的模块,找不到就开始找当前目录下的node_module第三方的模块。如果当前路径找不到就开始逐层向上寻找node_module。

注意:当requir一个模块。加载一个模块所有语句都会被执行。就是(function() {
//这之中的被require都会被执行
})

特性 : 1.module加载后执行,加载完成缓存。一定模块被加载就会在内存中存在。

    2.一旦出现某个模块被循环加载,就只输出已已经执行的部分。还未执行的部分不会输出。
    例如:

文件A module.export.test = "A";

     const mouB = require('./modB');
     console.log('这是模块A的'+'modB.test')
     module.export.test = 'AA'


文件B    module.export.test = "B"; 
         const mouB = require('./modA');
         console.log('这是模块B的'+'modA.test')
         module.export.test = 'BB'
主函数中调用   const mouA =require('./A')
              const mouB =require('./B')

输出的是 A BB ,A只是部分执行结果。而B全部执行完成
尽量避免这种循环加载,太绕。


jushenwanghaoyu
5 声望1 粉丝